home *** CD-ROM | disk | FTP | other *** search
/ The CICA Windows Explosion! / The CICA Windows Explosion! - Disc 2.iso / demo / wemdemo4.zip / INFO / LEMACS.7 (.txt) < prev    next >
GNU Info File  |  1994-09-21  |  52KB  |  922 lines

  1. This is Info file ../info/lemacs, produced by Makeinfo-1.55 from the
  2. input file lemacs.txi.
  3.    This file documents the GNU Emacs editor.
  4.    Copyright (C) 1985, 1986, 1988 Richard M. Stallman.  Copyright (C)
  5. 1991, 1992 Lucid, Inc.
  6.    Permission is granted to make and distribute verbatim copies of this
  7. manual provided the copyright notice and this permission notice are
  8. preserved on all copies.
  9.    Permission is granted to copy and distribute modified versions of
  10. this manual under the conditions for verbatim copying, provided also
  11. that the sections entitled "The GNU Manifesto", "Distribution" and "GNU
  12. General Public License" are included exactly as in the original, and
  13. provided that the entire resulting derived work is distributed under the
  14. terms of a permission notice identical to this one.
  15.    Permission is granted to copy and distribute translations of this
  16. manual into another language, under the above conditions for modified
  17. versions, except that the sections entitled "The GNU Manifesto",
  18. "Distribution" and "GNU General Public License" may be included in a
  19. translation approved by the author instead of in the original English.
  20. File: lemacs,  Node: Several Buffers,  Prev: Kill Buffer,  Up: Buffers
  21. Operating on Several Buffers
  22. ============================
  23.    The "buffer-menu" facility is like a "Dired for buffers"; it allows
  24. you to request operations on various Emacs buffers by editing a buffer
  25. containing a list of them.  You can save buffers, kill them (here
  26. called "deleting" them, for consistency with Dired), or display them.
  27. `M-x buffer-menu'
  28.      Begin editing a buffer listing all Emacs buffers.
  29.    The command `buffer-menu' writes a list of all Emacs buffers into
  30. the buffer `*Buffer List*', and selects that buffer in Buffer Menu
  31. mode.  The buffer is read-only.  You can only change it using the
  32. special commands described in this section.  Most of the commands are
  33. graphic characters.  You can use  Emacs cursor motion commands in the
  34. `*Buffer List*' buffer.  If the cursor is on a line describing a
  35. buffer, the following  special commands apply to that buffer:
  36.      Request to delete (kill) the buffer, then move down.  A `D' before
  37.      the buffer name on a line indicates a deletion request.  Requested
  38.      deletions actually take place when you use the `x' command.
  39.      Synonym for `d'.
  40. `C-d'
  41.      Like `d' but move up afterwards instead of down.
  42.      Request to save the buffer.  An `S' befor the buffer name on a line
  43.      indicates the request.  Requested saves actually take place when
  44.      you use the `x' command.  You can request both saving and deletion
  45.      for the same buffer.
  46.      Mark buffer "unmodified".  The command `~' does this immediately
  47.      when typed.
  48.      Perform previously requested deletions and saves.
  49.      Remove any request made for the current line, and move down.
  50. `DEL'
  51.      Move to previous line and remove any request made for that line.
  52.    All commands that add or remove flags to request later operations
  53. also move down a line.  They accept a numeric argument as a repeat
  54. count, unless otherwise specified.
  55.    There are also special commands to use the buffer list to select
  56. another buffer, and to specify one or more other buffers for display in
  57. additional windows.
  58.      Select the buffer in a full-screen window.  This command takes
  59.      effect immediately.
  60.      Immediately set up two windows, with this buffer in one, and the
  61.      buffer selected before `*Buffer List*' in the other.
  62.      Immediately select the buffer in place of the `*Buffer List*'
  63.      buffer.
  64.      Immediately select the buffer in another window as if by `C-x 4 b',
  65.      leaving `*Buffer List*' visible.
  66.      Immediately select this buffer, and display any buffers previously
  67.      flagged with the `m' command in other windows.  If there are no
  68.      buffers flagged with `m', this command is equivalent to `1'.
  69.      Flag this buffer to be displayed in another window if the `q'
  70.      command is used.  The request shows as a `>' at the beginning of
  71.      the line.  The same buffer may not have both a delete request and a
  72.      display request.
  73.    Going back between a `buffer-menu' buffer and other Emacs buffers is
  74. easy.  You can, for example, switch from the `*Buffer List*' buffer to
  75. another Emacs buffer, and edit there.  You can then reselect the
  76. `buffer-menu' buffer, and perform operations already requested, or you
  77. can kill that buffer, or pay no further attention to it.   All that
  78. `buffer-menu' does directly is create and select a suitable buffer, and
  79. turn on Buffer Menu mode.  All the other capabilities of the buffer
  80. menu are implemented by special commands provided in Buffer Menu mode.
  81.    The only difference between `buffer-menu' and `list-buffers' is that
  82. `buffer-menu' selects the `*Buffer List*' buffer and `list-buffers'
  83. does not.  If you run `list-buffers' (that is, type `C-x C-b') and
  84. select the buffer list manually, you can use all the commands described
  85. here.
  86. File: lemacs,  Node: Windows,  Next: Major Modes,  Prev: Buffers,  Up: Top
  87. Multiple Windows
  88. ****************
  89.    Emacs can split the screen into two or many windows, which can
  90. display parts of different buffers, or different parts of one buffer.
  91. If you are running Lucid GNU Emacs under X, that means you can have the
  92. X window that contains the Emacs screen have multiple subwindows.
  93. * Menu:
  94. * Basic Window::     Introduction to Emacs windows.
  95. * Split Window::     New windows are made by splitting existing windows.
  96. * Other Window::     Moving to another window or doing something to it.
  97. * Pop Up Window::    Finding a file or buffer in another window.
  98. * Change Window::    Deleting windows and changing their sizes.
  99. File: lemacs,  Node: Basic Window,  Next: Split Window,  Prev: Windows,  Up: Windows
  100. Concepts of Emacs Windows
  101. =========================
  102.    When Emacs displays multiple windows, each window has one Emacs
  103. buffer designated for display.  The same buffer may appear in more than
  104. one window; if it does, any changes in its text are displayed in all
  105. the windows that display it.  Windows showing the same buffer can show
  106. different parts of it, because each window has its own value of point.
  107.    At any time, one  windows is the "selected window"; the buffer
  108. displayed by that window is the current buffer.  The cursor shows the
  109. location of point in that window.  Each other window has a location of
  110. point as well, but since the terminal has only one cursor it cannot
  111. show the location of point in the other windows.
  112.    Commands to move point affect the value of point for the selected
  113. Emacs window only.  They do not change the value of point in any other
  114. Emacs window, including those showing the same buffer.  The same is
  115. true for commands such as `C-x b' to change the selected buffer in the
  116. selected window; they do not affect other windows at all.  However,
  117. there are other commands such as `C-x 4 b' that select a different
  118. window and switch buffers in it.  Also, all commands that display
  119. information in a window, including (for example) `C-h f'
  120. (`describe-function') and `C-x C-b' (`list-buffers'), work by switching
  121. buffers in a non-selected window without affecting the selected window.
  122.    Each window has its own mode line, which displays the buffer name,
  123. modification status and major and minor modes of the buffer that is
  124. displayed in the window.  *Note Mode Line::, for details on the mode
  125. line.
  126. File: lemacs,  Node: Split Window,  Next: Other Window,  Prev: Basic Window,  Up: Windows
  127. Splitting Windows
  128. =================
  129. `C-x 2'
  130.      Split the selected window into two windows, one above the other
  131.      (`split-window-vertically').
  132. `C-x 5'
  133.      Split the selected window into two windows positioned side by side
  134.      (`split-window-horizontally').
  135.      In Lucid GNU Emacs, horizontal window splitting is not
  136.      implemented.  In this version, `C-x 5' creates a new screen.
  137. `C-x 6'
  138.      Save the current window configuration in register REG (a letter).
  139. `C-x 7'
  140.      Restore (make current) the window configuration in register REG (a
  141.      letter).  Use with a register previously set with `C-x 6'.
  142.    The command `C-x 2' (`split-window-vertically') breaks the selected
  143. window into two windows, one above the other.  Both windows start out
  144. displaying the same buffer, with the same value of point.  By default
  145. each of the two windows gets half the height of the window that was
  146. split.  A numeric argument specifies how many lines to give to the top
  147. window.
  148.    `C-x 5' (`split-window-horizontally') breaks the selected window
  149. into two side-by-side windows.  A numeric argument specifies how many
  150. columns to give the one on the left.  A line of vertical bars separates
  151. the two windows.  Windows that are not the full width of the screen
  152. have truncated mode lines which do not always appear in inverse video,
  153. because Emacs display routines cannot display a region of inverse video
  154. that is only part of a line on the screen.
  155.    When a window is less than the full width, many text lines are too
  156. long to fit.  Continuing all those lines might be confusing.  Set the
  157. variable `truncate-partial-width-windows' to non-`nil' to force
  158. truncation in all windows less than the full width of the screen,
  159. independent of the buffer and its value for `truncate-lines'.  *Note
  160. Continuation Lines::.
  161.    Horizontal scrolling is often used in side-by-side windows.  *Note
  162. Display::.
  163.    You can resize a window and store that configuration in a register by
  164. supplying a REGISTER argument to `register-to-window-config' (`C-x 6').
  165. To return to the window configuration established with
  166. (`window-config-to-register', use `register-to-window-config' (`C-x 7').
  167. File: lemacs,  Node: Other Window,  Next: Pop Up Window,  Prev: Split Window,  Up: Windows
  168. Using Other Windows
  169. ===================
  170. `C-x o'
  171.      Select another window (`other-window').  That is `o', not zero.
  172. `C-M-v'
  173.      Scroll the next window (`scroll-other-window').
  174. `M-x compare-windows'
  175.      Find the next place where the text in the selected window does not
  176.      match the text in the next window.
  177. `M-x other-window-any-screen N'
  178.      Select the Nth different window on any screen.
  179.    To select a different window, use `C-x o' (`other-window').  That is
  180. an `o', for `other', not a zero.  When there are more than two windows,
  181. the command moves through all the windows in a cyclic order, generally
  182. top to bottom and left to right.  From the rightmost and bottommost
  183. window, it goes back to the one at the upper left corner.  A numeric
  184. argument, N, moves several steps in the cyclic order of windows. A
  185. negative numeric argument moves around the cycle in the opposite order.
  186. If the optional second argument ALL_SCREENS is non-`nil', the function
  187. cycles through all screens.  When the minibuffer is active, the
  188. minibuffer is the last window in the cycle; you can switch from the
  189. minibuffer window to one of the other windows, and later switch back
  190. and finish supplying the minibuffer argument that is requested.  *Note
  191. Minibuffer Edit::.
  192.    The command `M-x other-window-any-screen' also selects the window N
  193. steps away in the cyclic order.  However, unlike `other-window', this
  194. command selects a window on the next or previous screen instead of
  195. wrapping around to the top or bottom of the current screen, when there
  196. are no more windows.
  197.    The usual scrolling commands (*note Display::.) apply to the selected
  198. window only.  `C-M-v' (`scroll-other-window') scrolls the window that
  199. `C-x o' would select.  Like `C-v', it takes positive and negative
  200. arguments.
  201.    The command `M-x compare-windows' compares the text in the current
  202. window with the text in the next window.  Comparison starts at point in
  203. each window.  Point moves forward in each window, a character at a time,
  204. until the next set of characters in the two windows are different.
  205. Then the command is finished.
  206.    A prefix argument IGNORE-WHITESPACE means ignore changes in
  207. whitespace.  The variable `compare-windows-whitespace' controls how
  208. whitespace is skipped.
  209.    If `compare-ignore-case' is non-`nil', changes in case are also
  210. ignored.
  211. File: lemacs,  Node: Pop Up Window,  Next: Change Window,  Prev: Other Window,  Up: Windows
  212. Displaying in Another Window
  213. ============================
  214.    `C-x 4' is a prefix key for commands that select another window
  215. (splitting the window if there is only one) and select a buffer in that
  216. window.  Different `C-x 4' commands have different ways of finding the
  217. buffer to select.
  218. `C-x 4 b BUFNAME RET'
  219.      Select buffer BUFNAME in another window.  This runs
  220.      `switch-to-buffer-other-window'.
  221. `C-x 4 f FILENAME RET'
  222.      Visit file FILENAME and select its buffer in another window.  This
  223.      runs `find-file-other-window'.  *Note Visiting::.
  224. `C-x 4 d DIRECTORY RET'
  225.      Select a Dired buffer for directory DIRECTORY in another window.
  226.      This runs `dired-other-window'.  *Note Dired::.
  227. `C-x 4 m'
  228.      Start composing a mail message in another window.  This runs
  229.      `mail-other-window', and its same-window version is `C-x m' (*note
  230.      Sending Mail::.).
  231. `C-x 4 .'
  232.      Find a tag in the current tag table in another window.  This runs
  233.      `find-tag-other-window', the multiple-window variant of `M-.'
  234.      (*note Tags::.).
  235.    If the variable `display-buffer-function' is non-`nil', it is the
  236. function to call to handle display-buffer. It receives two arguments,
  237. the buffer and a flag, that if non-`nil', means that the currently
  238. selected window is not acceptable. Commands, such as
  239. `switch-to-buffer-other-window' and `find-file-other-window' work using
  240. this function.
  241. File: lemacs,  Node: Change Window,  Prev: Pop Up Window,  Up: Windows
  242. Deleting and Rearranging Windows
  243. ================================
  244. `C-x 0'
  245.      Get rid of the selected window (`delete-window').  That is a zero.
  246.      If there is more than one Emacs screen, deleting the sole remaining
  247.      window on that screen deletes the screen as well. If the current
  248.      screen is the only screen, it is not deleted.
  249. `C-x 1'
  250.      Get rid of all windows except the selected one
  251.      (`delete-other-windows').
  252. `C-x ^'
  253.      Make the selected window taller, at the expense of the other(s)
  254.      (`enlarge-window').
  255. `C-x }'
  256.      Make the selected window wider (`enlarge-window-horizontally').
  257.    To delete a window, type `C-x 0' (`delete-window').  (That is a
  258. zero.)  The space occupied by the deleted window is distributed among
  259. the other active windows (but not the minibuffer window, even if that
  260. is active at the time).  Once a window is deleted, its attributes are
  261. forgotten; there is no automatic way to make another window of the same
  262. shape or showing the same buffer.  The buffer continues to exist, and
  263. you can select it in any window with `C-x b'.
  264.    `C-x 1' (`delete-other-windows') is more powerful than `C-x 0'; it
  265. deletes all the windows except the selected one (and the minibuffer).
  266. The selected window expands to use the whole screen except for the echo
  267. area.
  268.    To readjust the division of space among existing windows, use `C-x
  269. ^' (`enlarge-window').  It makes the currently selected window longer
  270. by one line or as many lines as a numeric argument specifies.  With a
  271. negative argument, it makes the selected window smaller.  `C-x }'
  272. (`enlarge-window-horizontally') makes the selected window wider by the
  273. specified number of columns.  The extra screen space given to a window
  274. comes from one of its neighbors, if that is possible; otherwise, all
  275. the competing windows are shrunk in the same proportion.  If this makes
  276. some windows too small, those windows are deleted and their space is
  277. divided up.   Minimum window size is specified by the variables
  278. `window-min-height' and `window-min-width'.
  279. File: lemacs,  Node: Major Modes,  Next: Indentation,  Prev: Windows,  Up: Top
  280. Major Modes
  281. ***********
  282.    Emacs has many different "major modes", each of which customizes
  283. Emacs for editing text of a particular sort.  The major modes are
  284. mutually exclusive;  at any time, each buffer has one major mode.  The
  285. mode line normally contains the name of the current major mode in
  286. parentheses.  *Note Mode Line::.
  287.    The least specialized major mode is called "Fundamental mode".  This
  288. mode has no mode-specific redefinitions or variable settings.  Each
  289. Emacs command behaves in its most general manner, and each option is in
  290. its default state.  For editing any specific type of text, such as Lisp
  291. code or English text, you should switch to the appropriate major mode,
  292. such as Lisp mode or Text mode.
  293.    Selecting a major mode changes the meanings of a few keys to become
  294. more specifically adapted to the language being edited.  TAB, DEL, and
  295. LFD are changed frequently.  In addition, commands which handle
  296. comments use the mode to determine how to delimit comments.  Many major
  297. modes redefine the syntactical properties of characters appearing in
  298. the buffer.  *Note Syntax::.
  299.    The major modes fall into three major groups.  Lisp mode (which has
  300. several variants), C mode, and Muddle mode are for specific programming
  301. languages.  Text mode, Nroff mode, TeX mode and Outline mode are for
  302. editing English text.  The remaining major modes are not intended for
  303. use on users' files; they are used in buffers created by Emacs for
  304. specific purposes and include Dired mode for buffers made by Dired
  305. (*note Dired::.), Mail mode for buffers made by `C-x m' (*note Sending
  306. Mail::.), and Shell mode for buffers used for communicating with an
  307. inferior shell process (*note Interactive Shell::.).
  308.    Most programming language major modes specify that only blank lines
  309. separate paragraphs.  This is so that the paragraph commands remain
  310. useful.  *Note Paragraphs::.  They also cause Auto Fill mode to use the
  311. definition of TAB to indent the new lines it creates.  This is because
  312. most lines in a program are usually indented.  *Note Indentation::.
  313. * Menu:
  314. * Choosing Modes::     How major modes are specified or chosen.
  315. File: lemacs,  Node: Choosing Modes,  Prev: Major Modes,  Up: Major Modes
  316. Choosing Major Modes
  317. ====================
  318.    You can select a major mode explicitly for the current buffer, but
  319. most of the time Emacs determines which mode to use based on the file
  320. name or some text in the file.
  321.    Use a `M-x' command to explicitly select a new major mode.  Add
  322. `-mode' to the name of a major mode to get the name of a command to
  323. select that mode.  For example, to enter Lisp mode, execute `M-x
  324. lisp-mode'.
  325.    When you visit a file, Emacs usually chooses the right major mode
  326. based on the file's name.  For example, files whose names end in `.c'
  327. are edited in C mode.  The variable `auto-mode-alist' controls the
  328. correspondence between file names and major mode.  Its value is a list
  329. in which each element has the form
  330.      (REGEXP . MODE-FUNCTION)
  331. For example, one element normally found in the list has the form
  332. `("\\.c$" . c-mode)'. It is responsible for selecting C mode for files
  333. whose names end in `.c'.  (Note that `\\' is needed in Lisp syntax to
  334. include a `\' in the string, which is needed to suppress the special
  335. meaning of `.' in regexps.)  The only practical way to change this
  336. variable is with Lisp code.
  337.    You can specify which major mode should be used for editing a certain
  338. file by a special sort of text in the first non-blank line of the file.
  339. The mode name should appear in this line both preceded and followed by
  340. `-*-'.  Other text may appear on the line as well.  For example,
  341.      ;-*-Lisp-*-
  342. tells Emacs to use Lisp mode.  Note how the semicolon is used to make
  343. Lisp treat this line as a comment.  Such an explicit specification
  344. overrides any default mode based on the file name.
  345.    Another format of mode specification is
  346.      -*-Mode: MODENAME;-*-
  347. which allows other things besides the major mode name to be specified.
  348. However, Emacs does not look for anything except the mode name.
  349.    The major mode can also be specified in a local variables list.
  350. *Note File Variables::.
  351.    When you visit a file that does not specify a major mode to use, or
  352. when you create a new buffer with `C-x b', Emacs uses the major mode
  353. specified by the variable `default-major-mode'.  Normally this value is
  354. the symbol `fundamental-mode', which specifies Fundamental mode.  If
  355. `default-major-mode' is `nil', the major mode is taken from the
  356. previously selected buffer.
  357. File: lemacs,  Node: Indentation,  Next: Text,  Prev: Major Modes,  Up: Top
  358. Indentation
  359. ***********
  360. `TAB'
  361.      Indent current line "appropriately" in a mode-dependent fashion.
  362. `LFD'
  363.      Perform RET followed by TAB (`newline-and-indent').
  364. `M-^'
  365.      Merge two lines (`delete-indentation').  This would cancel out the
  366.      effect of LFD.
  367. `C-M-o'
  368.      Split line at point; text on the line after point becomes a new
  369.      line indented to the same column that it now starts in
  370.      (`split-line').
  371. `M-m'
  372.      Move (forward or back) to the first non-blank character on the
  373.      current line (`back-to-indentation').
  374. `C-M-\'
  375.      Indent several lines to same column (`indent-region').
  376. `C-x TAB'
  377.      Shift block of lines rigidly right or left (`indent-rigidly').
  378. `M-i'
  379.      Indent from point to the next prespecified tab stop column
  380.      (`tab-to-tab-stop').
  381. `M-x indent-relative'
  382.      Indent from point to under an indentation point in the previous
  383.      line.
  384.    Most programming languages have some indentation convention.  For
  385. Lisp code, lines are indented according to their nesting in
  386. parentheses.  The same general idea is used for C code, though details
  387. differ.
  388.    Use the TAB command to indent a line whatever the language, Each
  389. major mode defines this command to perform indentation appropriate for
  390. the particular language.  In Lisp mode, TAB aligns a line according to
  391. its depth in parentheses.  No matter where in the line you are when you
  392. type TAB, it aligns the line as a whole.  In C mode, TAB implements a
  393. subtle and sophisticated indentation style that knows about many
  394. aspects of C syntax.
  395.    In Text mode, TAB runs the command `tab-to-tab-stop', which indents
  396. to the next tab stop column.  You can set the tab stops with `M-x
  397. edit-tab-stops'.
  398. * Menu:
  399. * Indentation Commands:: Various commands and techniques for indentation.
  400. * Tab Stops::            You can set arbitrary "tab stops" and then
  401.                          indent to the next tab stop when you want to.
  402. * Just Spaces::          You can request indentation using just spaces.
  403. File: lemacs,  Node: Indentation Commands,  Next: Tab Stops,  Prev: Indentation,  Up: Indentation
  404. Indentation Commands and Techniques
  405. ===================================
  406.    If you just want to insert a tab character in the buffer, you can
  407. type `C-q TAB'.
  408.    To move over the indentation on a line, type `Meta-m'
  409. (`back-to-indentation').  This command, given anywhere on a line,
  410. positions point at the first non-blank character on the line.
  411.    To insert an indented line before the current line, type `C-a C-o
  412. TAB'.  To make an indented line after the current line, use `C-e LFD'.
  413.    `C-M-o' (`split-line') moves the text from point to the end of the
  414. line vertically down, so that the current line becomes two lines.
  415. `C-M-o' first moves point forward over any spaces and tabs.  Then it
  416. inserts after point a newline and enough indentation to reach the same
  417. column point is on.  Point remains before the inserted newline; in this
  418. regard, `C-M-o' resembles `C-o'.
  419.    To join two lines cleanly, use the `Meta-^' (`delete-indentation')
  420. command to delete the indentation at the front of the current line, and
  421. the line boundary as well.  Empty spaces are replaced by a single
  422. space, or by no space if at the beginning of a line, before a `)', or
  423. after a `('.  To delete just the indentation of a line, go to the
  424. beginning of the line and use `Meta-\' (`delete-horizontal-space'),
  425. which deletes all spaces and tabs around the cursor.
  426.    There are also commands for changing the indentation of several
  427. lines at once.  `Control-Meta-\' (`indent-region') gives each line which
  428. begins in the region the "usual" indentation by invoking TAB at the
  429. beginning of the line.  A numeric argument specifies the column to
  430. indent to.  Each line is shifted left or right so that its first
  431. non-blank character appears in that column.  `C-x TAB'
  432. (`indent-rigidly') moves all the lines in the region right by its
  433. argument (left, for negative arguments).  The whole group of lines moves
  434. rigidly sideways, which is how the command gets its name.
  435.    `M-x indent-relative' indents at point based on the previous line
  436. (actually, the last non-empty line.)  It inserts whitespace at point,
  437. moving point, until it is underneath an indentation point in the
  438. previous line.  An indentation point is the end of a sequence of
  439. whitespace or the end of the line.  If point is farther right than any
  440. indentation point in the previous line, the whitespace before point is
  441. deleted and the first indentation point then applicable is used.  If no
  442. indentation point is applicable even then, `tab-to-tab-stop' is run
  443. (see next section).
  444.    `indent-relative' is the definition of TAB in Indented Text mode.
  445. *Note Text::.
  446. File: lemacs,  Node: Tab Stops,  Next: Just Spaces,  Prev: Indentation Commands,  Up: Indentation
  447. Tab Stops
  448. =========
  449.    For typing in tables, you can use Text mode's definition of TAB,
  450. `tab-to-tab-stop'.  This command inserts indentation before point,
  451. enough to reach the next tab stop column.  Even if you are not in Text
  452. mode, this function is associated with `M-i' anyway.
  453.    You can arbitrarily set the tab stops used by `M-i'.  They are
  454. stored as a list of column-numbers in increasing order in the variable
  455. `tab-stop-list'.
  456.    The convenient way to set the tab stops is using `M-x
  457. edit-tab-stops', which creates and selects a buffer containing a
  458. description of the tab stop settings.  You can edit this buffer to
  459. specify different tab stops, and then type `C-c C-c' to make those new
  460. tab stops take effect.  In the tab stop buffer, `C-c C-c' runs the
  461. function `edit-tab-stops-note-changes' rather than the default
  462. `save-buffer'.  `edit-tab-stops' records which buffer was current when
  463. you invoked it, and stores the tab stops in that buffer.  Normally all
  464. buffers share the same tab stops and changing them in one buffer
  465. affects all.  If you make `tab-stop-list' local in one buffer
  466. `edit-tab-stops' in that buffer edits only the local settings.
  467.    Here is the text representing ordinary tab stops every eight columns.
  468.              :       :       :       :       :       :
  469.      0         1         2         3         4
  470.      0123456789012345678901234567890123456789012345678
  471.      To install changes, type C-c C-c
  472.    The first line contains a colon at each tab stop.  The remaining
  473. lines help you see where the colons are and tell you what to do.
  474.    Note that the tab stops that control `tab-to-tab-stop' have nothing
  475. to do with displaying tab characters in the buffer.  *Note Display
  476. Vars::, for more information on that.
  477. File: lemacs,  Node: Just Spaces,  Prev: Tab Stops,  Up: Indentation
  478. Tabs vs. Spaces
  479. ===============
  480.    Emacs normally uses both tabs and spaces to indent lines.  If you
  481. prefer, all indentation can be made from spaces only.  To request this,
  482. set `indent-tabs-mode' to `nil'.  This is a per-buffer variable;
  483. altering the variable affects only the current buffer, but there is a
  484. default value which you can change as well.  *Note Locals::.
  485.    There are also commands to convert tabs to spaces or vice versa,
  486. always preserving the columns of all non-blank text.  `M-x tabify'
  487. scans the region for sequences of spaces, and converts sequences of at
  488. least three spaces to tabs if that is possible without changing
  489. indentation.  `M-x untabify' changes all tabs in the region to
  490. corresponding numbers of spaces.
  491. File: lemacs,  Node: Text,  Next: Programs,  Prev: Indentation,  Up: Top
  492. Commands for Human Languages
  493. ****************************
  494.    The term "text" has two widespread meanings in our area of the
  495. computer field.  One is data that is a sequence of characters.  In this
  496. sense of the word any file that you edit with Emacs is text.  The other
  497. meaning is more restrictive: a sequence of characters in a human
  498. language for humans to read (possibly after processing by a text
  499. formatter), as opposed to a program or commands for a program.
  500.    Human languages have syntactic and stylistic conventions that editor
  501. commands should support or use to advantage: conventions involving
  502. words, sentences, paragraphs, and capital letters.  This chapter
  503. describes Emacs commands for all these things.  There are also commands
  504. for "filling", or rearranging paragraphs into lines of approximately
  505. equal length.  The commands for moving over and killing words, sentences
  506. and paragraphs, while intended primarily for editing text, are also
  507. often useful for editing programs.
  508.    Emacs has several major modes for editing human language text.  If a
  509. file contains plain text, use Text mode, which customizes Emacs in
  510. small ways for the syntactic conventions of text.  For text which
  511. contains embedded commands for text formatters, Emacs has other major
  512. modes, each for a particular text formatter.  Thus, for input to TeX,
  513. you can use TeX mode; for input to nroff, Nroff mode.
  514. * Menu:
  515. * Text Mode::   The major modes for editing text files.
  516. * Nroff Mode::  The major mode for editing input to the formatter nroff.
  517. * TeX Mode::    The major modes for editing input to the formatter TeX.
  518. * Outline Mode::The major mode for editing outlines.
  519. * Words::       Moving over and killing words.
  520. * Sentences::   Moving over and killing sentences.
  521. * Paragraphs::    Moving over paragraphs.
  522. * Pages::    Moving over pages.
  523. * Filling::     Filling or justifying text
  524. * Case::        Changing the case of text
  525. File: lemacs,  Node: Text Mode,  Next: Words,  Prev: Text,  Up: Text
  526. Text Mode
  527. =========
  528.    You should use Text mode--rather than Fundamental or Lisp mode--to
  529. edit files of text in a human language.  Invoke `M-x text-mode' to
  530. enter Text mode.  In Text mode, TAB runs the function
  531. `tab-to-tab-stop', which allows you to use arbitrary tab stops set with
  532. `M-x edit-tab-stops' (*note Tab Stops::.).  Features concerned with
  533. comments in programs are turned off unless they are explicitly invoked.
  534. The syntax table is changed so that periods are not considered part of a
  535. word, while apostrophes, backspaces and underlines are.
  536.    A similar variant mode is Indented Text mode, intended for editing
  537. text in which most lines are indented.  This mode defines TAB to run
  538. `indent-relative' (*note Indentation::.), and makes Auto Fill indent
  539. the lines it creates.  As a result, a line made by Auto Filling, or by
  540. LFD, is normally indented just like the previous line.  Use `M-x
  541. indented-text-mode' to select this mode.
  542.    Entering Text mode or Indented Text mode calls the value of the
  543. variable `text-mode-hook' with no arguments, if that value exists and
  544. is not `nil'.  This value is also called when modes related to Text
  545. mode are entered; this includes Nroff mode, TeX mode, Outline mode and
  546. Mail mode.  Your hook can look at the value of `major-mode' to see
  547. which of these modes is actually being entered.
  548.    Two modes similar to Text mode are of use for editing text that is to
  549. be passed through a text formatter before achieving the form in which
  550. humans are to read it.
  551. * Menu:
  552. * Nroff Mode::  The major mode for editing input to the formatter nroff.
  553. * TeX Mode::    The major modes for editing input to the formatter TeX.
  554.   Another similar mode is used for editing outlines.  It allows you
  555. to view the text at various levels of detail.  You can view either
  556. the outline headings alone or both headings and text; you can also
  557. hide some of the headings at lower levels from view to make the high
  558. level structure more visible.
  559. * Outline Mode::The major mode for editing outlines.
  560. File: lemacs,  Node: Nroff Mode,  Next: TeX Mode,  Prev: Text Mode,  Up: Text Mode
  561. Nroff Mode
  562. ----------
  563.    Nroff mode is a mode like Text mode but modified to handle nroff
  564. commands present in the text.  Invoke `M-x nroff-mode' to enter this
  565. mode.  Nroff mode differs from Text mode in only a few ways.  All nroff
  566. command lines are considered paragraph separators, so that filling never
  567. garbles the nroff commands.  Pages are separated by `.bp' commands.
  568. Comments start with backslash-doublequote.  There are also three special
  569. commands that are not available in Text mode:
  570. `M-n'
  571.      Move to the beginning of the next line that isn't an nroff command
  572.      (`forward-text-line').  An argument is a repeat count.
  573. `M-p'
  574.      Like `M-n' but move up (`backward-text-line').
  575. `M-?'
  576.      Prints in the echo area the number of text lines (lines that are
  577.      not nroff commands) in the region (`count-text-lines').
  578.    The other feature of Nroff mode is that you can turn on Electric
  579. Nroff newline mode.  This is a minor mode that you can turn on or off
  580. with `M-x electric-nroff-mode' (*note Minor Modes::.).  When the mode is
  581. on and you use RET to end a line that containing an nroff command that
  582. opens a kind of grouping, Emacs automatically inserts the matching
  583. nroff command to close that grouping on the following line.  For
  584. example, if you are at the beginning of a line and type `. ( b RET',
  585. the matching command `.)b' will be inserted on a new line following
  586. point.
  587.    Entering Nroff mode calls the value of the variable `text-mode-hook'
  588. with no arguments, if that value exists and is not `nil'; then does the
  589. same with the variable `nroff-mode-hook'.
  590. File: lemacs,  Node: TeX Mode,  Next: Outline Mode,  Prev: Nroff Mode,  Up: Text Mode
  591. TeX Mode
  592. --------
  593.    TeX is a powerful text formatter written by Donald Knuth; like GNU
  594. Emacs, it is free.  LaTeX is a simplified input format for TeX,
  595. implemented by TeX macros.  It is part of TeX.
  596.    Emacs has a special TeX mode for editing TeX input files.  It
  597. provides facilities for checking the balance of delimiters and for
  598. invoking TeX on all or part of the file.
  599.    TeX mode has two variants, Plain TeX mode and LaTeX mode, which are
  600. two distinct major modes that differ only slightly.  These modes are
  601. designed for editing the two different input formats.  The command `M-x
  602. tex-mode' looks at the contents of a buffer to determine whether it
  603. appears to be LaTeX input or not; it then selects the appropriate mode.
  604. If it can't tell which is right (e.g., the buffer is empty), the
  605. variable `TeX-default-mode' controls which mode is used.
  606.    The commands `M-x plain-tex-mode' and `M-x latex-mode' explicitly
  607. select one of the variants of TeX mode.  Use these commands when `M-x
  608. tex-mode' does not guess right.
  609. * Menu:
  610. * Editing: TeX Editing.   Special commands for editing in TeX mode.
  611. * Printing: TeX Print.    Commands for printing part of a file with TeX.
  612.    TeX for Unix systems can be obtained from the University of
  613. Washington for a distribution fee.
  614.    To order a full distribution, send $140.00 for a 1/2 inch 9-track
  615. tape, $165.00 for two 4-track 1/4 inch cartridge tapes (foreign sites
  616. $150.00, for 1/2 inch, $175.00 for 1/4 inch, to cover the extra
  617. postage) payable to the University of Washington to:
  618.      The Director
  619.      Northwest Computer Support Group,  DW-10
  620.      University of Washington
  621.      Seattle, Washington 98195
  622. Purchase orders are acceptable, but there is an extra charge of $10.00,
  623. to pay for processing charges. (Total of $150 for domestic sites, $175
  624. for foreign sites).
  625.    The normal distribution is a tar tape, blocked 20, 1600 bpi, on an
  626. industry standard 2400 foot half-inch reel.  The physical format for
  627. the 1/4 inch streamer cartridges uses QIC-11, 8000 bpi, 4-track
  628. serpentine recording for the SUN.  Also, SystemV tapes can be written
  629. in cpio format, blocked 5120 bytes, ASCII headers.
  630. File: lemacs,  Node: TeX Editing,  Next: TeX Print,  Prev: TeX Mode,  Up: TeX Mode
  631. TeX Editing Commands
  632. ....................
  633.    Here are the special commands provided in TeX mode for editing the
  634. text of the file.
  635.      Insert, according to context, either ```' or `"' or `'''
  636.      (`TeX-insert-quote').
  637. `LFD'
  638.      Insert a paragraph break (two newlines) and check the previous
  639.      paragraph for unbalanced braces or dollar signs (`TeX-terminate-
  640.      paragraph').
  641. `M-x validate-TeX-buffer'
  642.      Check each paragraph in the buffer for unbalanced braces or dollar
  643.      signs.
  644. `M-{'
  645.      Insert `{}' and position point between them (`TeX-insert-braces').
  646. `M-}'
  647.      Move forward past the next unmatched close brace (`up-list').
  648. `C-c C-f'
  649.      Close a block for LaTeX (`TeX-close-LaTeX-block').
  650.    In TeX, the character `"' is not normally used; you use ```' to
  651. start a quotation and `''' to end one.  TeX mode defines the key `"' to
  652. insert ```' after whitespace or an open brace, `"' after a backslash,
  653. or `''' otherwise.  This is done by the command `TeX-insert-quote'.  If
  654. you need the character `"' itself in unusual contexts, use `C-q' to
  655. insert it.  Also, `"' with a numeric argument always inserts that
  656. number of `"' characters.
  657.    In TeX mode, `$' has a special syntax code which attempts to
  658. understand the way TeX math mode delimiters match.  When you insert a
  659. `$' that is meant to exit math mode, the position of the matching `$'
  660. that entered math mode is displayed for a second.  This is the same
  661. feature that displays the open brace that matches a close brace that is
  662. inserted.  However, there is no way to tell whether a `$' enters math
  663. mode or leaves it; so when you insert a `$' that enters math mode, the
  664. previous `$' position is shown as if it were a match, even though they
  665. are actually unrelated.
  666.    If you prefer to keep braces balanced at all times, you can use `M-{'
  667. (`TeX-insert-braces') to insert a pair of braces.  It leaves point
  668. between the two braces so you can insert the text that belongs inside.
  669. Afterward, use the command `M-}' (`up-list') to move forward past the
  670. close brace.
  671.    There are two commands for checking the matching of braces.  LFD
  672. (`TeX-terminate-paragraph') checks the paragraph before point, and
  673. inserts two newlines to start a new paragraph.  It prints a message in
  674. the echo area if any mismatch is found.  `M-x validate-TeX-buffer'
  675. checks the entire buffer, paragraph by paragraph.  When it finds a
  676. paragraph that contains a mismatch, it displays point at the beginning
  677. of the paragraph for a few seconds and pushes a mark at that spot.
  678. Scanning continues until the whole buffer has been checked or until you
  679. type another key.  The positions of the last several paragraphs with
  680. mismatches can be found in the mark ring (*note Mark Ring::.).
  681.    Note that square brackets and parentheses, not just braces, are
  682. matched in TeX mode.  This is wrong if you want to  check TeX syntax.
  683. However, parentheses and square brackets are likely to be used in text
  684. as matching delimiters and it is useful for the various motion commands
  685. and automatic match display to work with them.
  686.    In LaTeX input, `\begin' and `\end' commands must balance.  After
  687. you insert a `\begin', use `C-c C-f' (`TeX-close-LaTeX-block') to
  688. insert automatically a matching `\end' (on a new line following the
  689. `\begin').  A blank line is inserted between the two, and point is left
  690. there.
  691. File: lemacs,  Node: TeX Print,  Prev: TeX Editing,  Up: TeX Mode
  692. TeX Printing Commands
  693. .....................
  694.    You can invoke TeX as an inferior of Emacs on either the entire
  695. contents of the buffer or just a region at a time.  Running TeX in this
  696. way on just one chapter is a good way to see what your changes look
  697. like without taking the time to format the entire file.
  698. `C-c C-r'
  699.      Invoke TeX on the current region, plus the buffer's header
  700.      (`TeX-region').
  701. `C-c C-b'
  702.      Invoke TeX on the entire current buffer (`TeX-buffer').
  703. `C-c C-l'
  704.      Recenter the window showing output from the inferior TeX so that
  705.      the last line can be seen (`TeX-recenter-output-buffer').
  706. `C-c C-k'
  707.      Kill the inferior TeX (`TeX-kill-job').
  708. `C-c C-p'
  709.      Print the output from the last `C-c C-r' or `C-c C-b' command
  710.      (`TeX-print').
  711. `C-c C-q'
  712.      Show the printer queue (`TeX-show-print-queue').
  713.    You can pass the current buffer through an inferior TeX using `C-c
  714. C-b' (`TeX-buffer').  The formatted output appears in a file in `/tmp';
  715. to print it, type `C-c C-p' (`TeX-print').  Afterward use `C-c C-q'
  716. (`TeX-show-print-queue') to view the progress of your output towards
  717. being printed.
  718.    The console output from TeX, including any error messages, appears
  719. in a buffer called `*TeX-shell*'.  If TeX gets an error, you can switch
  720. to this buffer and feed it input (this works as in Shell mode; *note
  721. Interactive Shell::.).  Without switching to this buffer, you can scroll
  722. it so that its last line is visible by typing `C-c C-l'.
  723.    Type `C-c C-k' (`TeX-kill-job') to kill the TeX process if you see
  724. that its output is no longer useful.  Using `C-c C-b' or `C-c C-r' also
  725. kills any TeX process still running.
  726.    You can pass an arbitrary region through an inferior TeX by typing
  727. `C-c C-r' (`TeX-region').  This is tricky, however, because most files
  728. of TeX input contain commands at the beginning to set parameters and
  729. define macros.  Without them, no later part of the file will format
  730. correctly.  To solve this problem, `C-c C-r' allows you to designate a
  731. part of the file as containing essential commands; it is included
  732. before the specified region as part of the input to TeX.  The
  733. designated part of the file is called the "header".
  734.    To indicate the bounds of the header in Plain TeX mode, insert two
  735. special strings in the file: `%**start of header' before the header,
  736. and `%**end of header' after it.  Each string must appear entirely on
  737. one line, but there may be other text on the line before or after.  The
  738. lines containing the two strings are included in the header.  If
  739. `%**start of header' does not appear within the first 100 lines of the
  740. buffer, `C-c C-r' assumes there is no header.
  741.    In LaTeX mode, the header begins with `\documentstyle' and ends with
  742. `\begin{document}'.  These are commands that LaTeX requires you to use,
  743. so you don't need to do anything special to identify the header.
  744.    When you enter either kind of TeX mode, Emacs calls with no
  745. arguments the value of the variable `text-mode-hook', if that value
  746. exists and is not `nil'.  Emacs then calls the variable `TeX-mode-hook'
  747. and either `plain-TeX-mode-hook' or `LaTeX-mode-hook' under the same
  748. conditions.
  749. File: lemacs,  Node: Outline Mode,  Prev: TeX Mode,  Up: Text Mode
  750. Outline Mode
  751. ------------
  752.    Outline mode is a major mode similar to Text mode but intended for
  753. editing outlines.  It allows you to make parts of the text temporarily
  754. invisible so that you can see just the overall structure of the
  755. outline.  Type `M-x outline-mode' to turn on Outline mode in the
  756. current buffer.
  757.    When you enter Outline mode, Emacs calls with no arguments the value
  758. of the variable `text-mode-hook', if that value exists and is not
  759. `nil'; then it does the same with the variable `outline-mode-hook'.
  760.    When a line is invisible in outline mode, it does not appear on the
  761. screen.  The screen appears exactly as if the invisible line were
  762. deleted, except that an ellipsis (three periods in a row) appears at
  763. the end of the previous visible line (only one ellipsis no matter how
  764. many invisible lines follow).
  765.    All editing commands treat the text of the invisible line as part of
  766. the previous visible line.  For example, `C-n' moves onto the next
  767. visible line.  Killing an entire visible line, including its
  768. terminating newline, really kills all the following invisible lines as
  769. well; yanking everything back yanks the invisible lines and they remain
  770. invisible.
  771. * Menu:
  772. * Format: Outline Format.      What the text of an outline looks like.
  773. * Motion: Outline Motion.      Special commands for moving through outlines.
  774. * Visibility: Outline Visibility. Commands to control what is visible.
  775. File: lemacs,  Node: Outline Format,  Next: Outline Motion,  Prev: Outline Mode,  Up: Outline Mode
  776. Format of Outlines
  777. ..................
  778.    Outline mode assumes that the lines in the buffer are of two types:
  779. "heading lines" and "body lines".  A heading line represents a topic in
  780. the outline.  Heading lines start with one or more stars; the number of
  781. stars determines the depth of the heading in the outline structure.
  782. Thus, a heading line with one star is a major topic; all the heading
  783. lines with two stars between it and the next one-star heading are its
  784. subtopics; and so on.  Any line that is not a heading line is a body
  785. line.  Body lines belong to the preceding heading line.  Here is an
  786. example:
  787.      * Food
  788.      
  789.      This is the body,
  790.      which says something about the topic of food.
  791.      
  792.      ** Delicious Food
  793.      
  794.      This is the body of the second-level header.
  795.      
  796.      ** Distasteful Food
  797.      
  798.      This could have
  799.      a body too, with
  800.      several lines.
  801.      
  802.      *** Dormitory Food
  803.      
  804.      * Shelter
  805.      
  806.      A second first-level topic with its header line.
  807.    A heading line together with all following body lines is called
  808. collectively an "entry".  A heading line together with all following
  809. deeper heading lines and their body lines is called a "subtree".
  810.    You can customize the criterion for distinguishing heading lines by
  811. setting the variable `outline-regexp'.  Any line whose beginning has a
  812. match for this regexp is considered a heading line.  Matches that start
  813. within a line (not at the beginning) do not count.  The length of the
  814. matching text determines the level of the heading; longer matches make
  815. a more deeply nested level.  Thus, for example, if a text formatter has
  816. commands `@chapter', `@section' and `@subsection' to divide the
  817. document into chapters and sections, you can make those lines count as
  818. heading lines by setting `outline-regexp' to
  819. `"@chap\\|@\\(sub\\)*section"'.  Note the trick: the two words
  820. `chapter' and `section' are the same length, but by defining the regexp
  821. to match only `chap' we ensure that the length of the text matched on a
  822. chapter heading is shorter, so that Outline mode will know that
  823. sections are contained in chapters.  This works as long as no other
  824. command starts with `@chap'.
  825.    Outline mode makes a line invisible by changing the newline before it
  826. into an ASCII Control-M (code 015).  Most editing commands that work on
  827. lines treat an invisible line as part of the previous line because,
  828. strictly speaking, it is part of that line, since there is no longer a
  829. newline in between.  When you save the file in Outline mode, Control-M
  830. characters are saved as newlines, so the invisible lines become ordinary
  831. lines in the file.  Saving does not change the visibility status of a
  832. line inside Emacs.
  833. File: lemacs,  Node: Outline Motion,  Next: Outline Visibility,  Prev: Outline Format,  Up: Outline Mode
  834. Outline Motion Commands
  835. .......................
  836.    Some special commands in Outline mode move backward and forward to
  837. heading lines.
  838. `C-c C-n'
  839.      Move point to the next visible heading line
  840.      (`outline-next-visible-heading').
  841. `C-c C-p'
  842.      Move point to the previous visible heading line
  843.      (`outline-previous-visible-heading').
  844. `C-c C-f'
  845.      Move point to the next visible heading line at the same level as
  846.      the one point is on (`outline-forward-same-level').
  847. `C-c C-b'
  848.      Move point to the previous visible heading line at the same level
  849.      (`outline-backward-same-level').
  850. `C-c C-u'
  851.      Move point up to a lower-level (more inclusive) visible heading
  852.      line (`outline-up-heading').
  853.    `C-c C-n' (`next-visible-heading') moves down to the next heading
  854. line.  `C-c C-p' (`previous-visible-heading') moves similarly backward.
  855. Both accept numeric arguments as repeat counts.  The names emphasize
  856. that invisible headings are skipped, but this is not really a special
  857. feature.  All editing commands that look for lines ignore the invisible
  858. lines automatically.
  859.    More advanced motion commands understand the levels of headings.
  860. The commands `C-c C-f' (`outline-forward-same-level') and `C-c C-b'
  861. (`outline-backward-same-level') move from one heading line to another
  862. visible heading at the same depth in the outline.  `C-c C-u'
  863. (`outline-up-heading') moves backward to another heading that is less
  864. deeply nested.
  865. File: lemacs,  Node: Outline Visibility,  Prev: Outline Motion,  Up: Outline Mode
  866. Outline Visibility Commands
  867. ...........................
  868.    The other special commands of outline mode are used to make lines
  869. visible or invisible.  Their names all start with `hide' or `show'.
  870. Most of them exist as pairs of opposites.  They are not undoable;
  871. instead, you can undo right past them.  Making lines visible or
  872. invisible is simply not recorded by the undo mechanism.
  873. `M-x hide-body'
  874.      Make all body lines in the buffer invisible.
  875. `M-x show-all'
  876.      Make all lines in the buffer visible.
  877. `C-c C-h'
  878.      Make everything under this heading invisible, not including this
  879.      heading itself (`hide-subtree').
  880. `C-c C-s'
  881.      Make everything under this heading visible, including body,
  882.      subheadings, and their bodies (`show-subtree').
  883. `M-x hide-leaves'
  884.      Make the body of this heading line, and of all its subheadings,
  885.      invisible.
  886. `M-x show-branches'
  887.      Make all subheadings of this heading line, at all levels, visible.
  888. `C-c C-i'
  889.      Make immediate subheadings (one level down) of this heading line
  890.      visible (`show-children').
  891. `M-x hide-entry'
  892.      Make this heading line's body invisible.
  893. `M-x show-entry'
  894.      Make this heading line's body visible.
  895.    Two commands that are exact opposites are `M-x hide-entry' and `M-x
  896. show-entry'.  They are used with point on a heading line, and apply
  897. only to the body lines of that heading.  The subtopics and their bodies
  898. are not affected.
  899.    Two more powerful opposites are `C-c C-h' (`hide-subtree') and `C-c
  900. C-s' (`show-subtree').  Both should be used when point is on a heading
  901. line, and both apply to all the lines of that heading's "subtree": its
  902. body, all its subheadings, both direct and indirect, and all of their
  903. bodies.  In other words, the subtree contains everything following this
  904. heading line, up to and not including the next heading of the same or
  905. higher rank.
  906.    Intermediate between a visible subtree and an invisible one is having
  907. all the subheadings visible but none of the body.  There are two
  908. commands for doing this, one that hides the bodies and one that makes
  909. the subheadings visible.  They are `M-x hide-leaves' and `M-x
  910. show-branches'.
  911.    A little weaker than `show-branches' is `C-c C-i' (`show-children').
  912. It makes just the direct subheadings visible--those one level down.
  913. Deeper subheadings remain invisible.
  914.    Two commands have a blanket effect on the whole file.  `M-x
  915. hide-body' makes all body lines invisible, so that you see just the
  916. outline structure.  `M-x show-all' makes all lines visible.  You can
  917. think of these commands as a pair of opposites even though `M-x
  918. show-all' applies to more than just body lines.
  919.    You can turn off the use of ellipses at the ends of visible lines by
  920. setting `selective-display-ellipses' to `nil'.  The result is no
  921. visible indication of the presence of invisible lines.
  922.